﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using Sistema.Dominio.ValidationAttribute;
using System.Runtime.Serialization;

namespace Sistema.Dominio
{
    [DataContract]
    public class DadosPessoaJuridicaVO:EntidadeValidavel
    {
        private String _razaoSocial;
        private String _fantasia;
        private String _responsavel;
        private String _cnpj;
        private String _ie;

        public DadosPessoaJuridicaVO()
            :base(typeof(DadosPessoaJuridicaVO))
        {
            _razaoSocial = String.Empty;
            _fantasia = String.Empty;
            _responsavel = String.Empty;
            _cnpj = String.Empty;
            _ie = String.Empty;
        }

        [DataMember]
        [Required(ErrorMessage = "Campo Razão Social é obrigatório.", AllowEmptyStrings = false)]
        [StringLength(50, ErrorMessage = "Campo Razão Social deve conter no máximo 50 caracteres.")]
        public String RazaoSocial
        {
            get { return _razaoSocial; }
            set { _razaoSocial = value; base.RaisePropertyChanged("Razão Social"); }
        }

        [DataMember]
        [Required(ErrorMessage = "Campo Fantasia é obrigatório.", AllowEmptyStrings = false)]
        [StringLength(50, ErrorMessage = "Campo Fantasia deve conter no máximo 50 caracteres.")]
        public String Fantasia
        {
            get { return _fantasia; }
            set { _fantasia = value; base.RaisePropertyChanged("Fantasia"); }
        }

        [DataMember]
        [Required(ErrorMessage = "Campo Responsável é obrigatório.", AllowEmptyStrings = false)]
        [StringLength(50, ErrorMessage = "Campo Responsável deve conter no máximo 50 caracteres.")]
        public String Responsavel
        {
            get { return _responsavel; }
            set { _responsavel = value; base.RaisePropertyChanged("Responsável"); }
        }

        [DataMember]
        [Required(ErrorMessage = "Campo CNPJ é obrigatório.", AllowEmptyStrings = false)]
        [Cnpj(ErrorMessage = "CNPJ inválido.")]
        public String CNPJ
        {
            get { return _cnpj; }
            set { _cnpj = value; base.RaisePropertyChanged("CNPJ"); }
        }

        [DataMember]
        [Required(ErrorMessage = "Campo Inscrição Estadual, IE é obrigatório.", AllowEmptyStrings = false)]
        public String IE
        {
            get { return _ie; }
            set { _ie = value; base.RaisePropertyChanged("Inscrição Estadual"); }
        }
    }
}
